home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / qlib205.zip / QLIB.ZIP / H / DOS.H < prev    next >
C/C++ Source or Header  |  1997-05-25  |  4KB  |  146 lines

  1. #ifndef __DOS_H__
  2. #define __DOS_H__
  3.  
  4. #include <stddef.h>
  5.  
  6. struct BYTEREGS  {
  7.   byte  al, ah;  word _1;
  8.   byte  bl, bh;  word _2;
  9.   byte  cl, ch;  word _3;
  10.   byte  dl, dh;  word _4;
  11. };
  12.  
  13. struct WORDREGS  {
  14.   word  ax,_1;
  15.   word  bx,_2;
  16.   word  cx,_3;
  17.   word  dx,_4;
  18.   word  si,_5;
  19.   word  di,_6;
  20.   word  cflag,_7;
  21.   word  flags,_8;
  22. };
  23.  
  24. struct DWORDREGS  {
  25.   dword  eax, ebx, ecx, edx;
  26.   dword  esi, edi, cflag, flags;
  27. };
  28.  
  29. union REGS {
  30.   struct  DWORDREGS  x;
  31.   struct  WORDREGS  w;
  32.   struct  BYTEREGS  h;
  33. };
  34.  
  35. // NOTE: int86x() & int386x() ignores ss,cs
  36. struct SREGS {
  37.   word  es;
  38.   word  cs;
  39.   word  ss;
  40.   word  ds;
  41.   word  fs;
  42.   word  gs;
  43. };
  44.  
  45. struct ffblk {
  46.   byte ff_reserved[21]; /* reserved by DOS */
  47.   byte ff_attrib;       /* attribute found */
  48.   word ff_ftime;        /* file time */
  49.   word ff_fdate;        /* file date */
  50.   dword ff_fsize;        /* file size */
  51.   byte ff_name[13];     /* found file name */
  52. };
  53.  
  54. struct time {
  55.   byte ti_min;   /* minutes */
  56.   byte ti_hour;  /* hours */
  57.   byte ti_hund;  /* hundredths of seconds */
  58.   byte ti_sec;   /* seconds */
  59. };
  60.  
  61. struct date {
  62.   word da_year;     /* current year */
  63.   byte da_day;     /* day of the month */
  64.   byte da_mon;     /* month (1 = Jan) */
  65. };
  66.  
  67. #ifdef __cplusplus
  68.   extern "C" {
  69. #endif
  70.  
  71. extern void int86(byte i,union REGS *rin,union REGS *rout);
  72. extern void int86x(byte i,union REGS *rin,union REGS *rout,struct SREGS *sreg);
  73. extern void int386(byte i,union REGS *rin,union REGS *rout);
  74. extern void int386x(byte i,union REGS *rin,union REGS *rout,struct SREGS *sreg);
  75.  
  76. extern word errno;
  77.  
  78. extern sword open(char *strg,word acc);
  79. extern void close(sword hand);
  80. extern word creat(char *strg,word attr);
  81. extern sdword read(sword hand,void* buf,dword len);
  82. extern sdword write(sword hand,void* buf,dword len);
  83. extern sdword lseek(sword hand,dword pos,byte typ);
  84. extern sdword tell(sword hand);
  85. extern sdword filelength(sword hand);
  86. extern sword eof(sword hand);
  87. extern sword unlink(char * strg);
  88. extern sword getdisk(void);
  89. extern sword setdisk(byte drv);
  90. extern sword mkdir(char * strg);
  91. extern sword chdir(char * strg);
  92. extern sword rmdir(char * strg);
  93. extern sword rename(char * _old,char * _new);
  94. extern char *getcwd(char * buf);
  95. extern char *getdcwd(byte drv,char * buf);
  96. extern sword findfirst(byte* str1,word attr,void * ffb);
  97. extern sword findnext(void* ffb);
  98.  
  99. extern void gettime(struct time*);
  100. extern void settime(struct time*);
  101. extern void getdate(struct date*);
  102. extern void setdate(struct date*);
  103.  
  104. extern void sleep(word);
  105. extern void delay(word);
  106. extern void sound(word);
  107. extern void nosound(void);
  108.  
  109. #ifndef SEEK_SET
  110.  
  111. #define SEEK_SET 0   // Seeks from beginning of file
  112. #define SEEK_CUR 1   // Seeks from current position
  113. #define SEEK_END 2   // Seeks from end of file
  114.  
  115. #define O_NOINHERIT 0x80
  116. #define O_DENYALL   0x10
  117. #define O_DENYWRITE 0x20
  118. #define O_DENYREAD  0x30
  119. #define O_DENYNONE  0x40
  120.  
  121. #define O_BINARY   0        // Binary mode
  122. #define O_RDONLY   0        // Read only                                   
  123. #define O_WRONLY   1        // Write only                                  
  124. #define O_RDWR     2        // Read and write                              
  125.  
  126. #define O_CREAT     0x0100  /* create and open file */
  127. #define O_TRUNC     0x0200  /* open with truncation */
  128. #define O_EXCL      0x0400  /* exclusive open */
  129. #define O_APPEND    0x0800  /* to end of file */
  130.  
  131. #define FA_NORMAL   0x00        /* Normal file, no attributes */
  132. #define FA_RDONLY   0x01        /* Read only attribute */
  133. #define FA_HIDDEN   0x02        /* Hidden file */
  134. #define FA_SYSTEM   0x04        /* System file */
  135. #define FA_LABEL    0x08        /* Volume label */
  136. #define FA_DIREC    0x10        /* Directory */
  137. #define FA_ARCH     0x20        /* Archive */
  138.  
  139. #endif  //SEEK_SET
  140.  
  141. #ifdef __cplusplus
  142.   }
  143. #endif
  144.  
  145. #endif
  146.